#include <list>
#include "Objects.h"

#include "TrackAPI.h" 

#ifndef _CAMERA_LIB_CAMERA_H
#define _CAMERA_LIB_CAMERA_H

#define DISTANCE_THRESHOLD 1.5
#define EQUAL_THRESHOLD 3
#define EQUAL_NEG_THRESHOLD 1/3
#define MINIMUM_AREA 10
#define ITERATOR(x) std::list<x>::iterator

namespace CameraLib {

class Camera {
	TrackingThreshold m_primaryColor, m_secondaryColor;
	MyOrder m_foe;
public:
	std::list<Flag> flags;
	std::list<Object> objects;
	double timeStamp;
	Camera::Camera(TrackingThreshold primaryColor, TrackingThreshold secondaryColor, MyOrder me);
	void Camera::Calculate();
	void Camera::Thread();
	void Camera::Run();
	
	std::list<Object> Camera::FindColor(TrackingThreshold td);
	std::list<Flag> Camera::FindFlags(TrackingThreshold green, TrackingThreshold pink, MyOrder me);

	bool IsFlag(Object green, Object pink);
};

}

#endif
